<?php
// 购物车类 by wangpenghai@xijie.com at 2011-04-15

/*
使用说明：
构造函数 cart 可以使用参数：
cart($cartname = 'myCart', $session_id = '', $savetype = 'session', $cookietime = 86400, $cookiepath = '/', $cookiedomain = '')
$cartname 是购物车的标识，可以指定，可以保证不重名，不会有相关冲突
$session_id 是 session_id，默认是使用 cookie 来传输，也可以自定义，如果存储类型是 session 才起效
$savetype 存储类型，有 session 和 cookie 方式
... 其他是 cookie 需要的参数

如果程序本身也需要使用 session，建议购物车使用 cookie 存储




添加一个商品
============================================================
// 引用类
require_once './cart.class.php';
// 建立类实例
$cart = new cart();

// 商品已经存在 修改数据
if ($cart->data[$id]) {
$cart->data[$id]['count'] += $count;
$cart->data[$id]['money'] += $cart->data[$id]['price'] * $count;
// 添加商品
} else {
$cart->data[$id]['name'] = $name;
$cart->data[$id]['price'] = $price;
$cart->data[$id]['count'] = $count;
$cart->data[$id]['money'] = $price * $count;
}
// 保存购物车数据
$cart->save();
============================================================



编辑一个商品数量
============================================================
// 引用类
require_once './cart.class.php';
// 建立类实例
$cart = new cart();

// 商品已经存在 修改数据
if ($cart->data[$id]) {
$cart->data[$id]['count'] = $count;
$cart->data[$id]['money'] = $cart->data[$id]['price'] * $count;

// 保存购物车数据
$cart->save();
}
============================================================



删除一个商品
============================================================
// 引用类
require_once './cart.class.php';
// 建立类实例
$cart = new cart();

// 删除商品
unset($cart->data[$id]);

// 保存购物车数据
$cart->save();
============================================================



列表购物车
============================================================
// 引用类
require_once './cart.class.php';
// 建立类实例
$cart = new cart();

foreach ($cart->data AS $k => $v) {
echo '商品 ID: '.$k;
echo '商品名称: '.$v['name'];
echo '商品单价: '.$v['price'];
echo '商品数量: '.$v['count'];
echo '商品总价: '.$v['money'];
}
============================================================



某字段总累计 --- 如所有商品总价格
============================================================
// 引用类
require_once './cart.class.php';
// 建立类实例
$cart = new cart();

// 累计 money 字段
$cart->sum('money')
============================================================



清空购物车
============================================================
// 引用类
require_once './cart.class.php';
// 建立类实例
$cart = new cart();

// 清除数据
unset($cart->data);

// 保存购物车数据
$cart->save();
============================================================
*/

$cur_path = dirname(__FILE__);
include_once $cur_path . '/cart.class.php';

class agent_cart extends cart {

	/**
	 * 初始化
	 *
	 */
	public function __construct()
	{
		parent::cart($cartname = 'agent_cart');
	}	
	
	/**
	 * 加入购物车
	 *
	 * @param int $com_id 商品ID
	 * @param int $code_id comnumcode id
	 * @param int $num 数量
	 */
	public function add_cart($com_id, $code_id, $num)
	{
		if (empty($this->data))
		{
			$this->data[0] = array(
					'com_id' => $com_id,
					'code_id' => $code_id, 
					'num' => $num,
					);
		} else {
			$is_on = false;
			foreach ($this->data as $key => $val)
			{
				if ($val['com_id'] == $com_id && $val['code_id'] == $code_id)
				{
					$this->data[$key]['num'] = $val['num'] + $num;
					$is_on = true;
				}
			}
			
			if ($is_on === false )
			{
				$this->data[] = array(
					'com_id' => $com_id,
					'code_id' => $code_id, 
					'num' => $num,
					);
			}
		}
		//保存到购物车
		$this->save();
	}
	
	/**
	 * 从购物车中删除商品
	 *
	 */
	public function del_cart($com_id, $code_id)
	{
		if (empty($this->data))
		{
			return true;
		}
		
		foreach ($this->data as $key => $val)
		{
			if ($val['com_id'] == $com_id && $val['code_id'] == $code_id)
			{
				unset($this->data[$key]);
			}
		}
	}
}
?>